package com.example.service;

import java.util.List;
import java.util.Set;

/**
 * 菜单权限映射服务接口
 * 用于处理菜单和权限之间的对应关系
 */
public interface MenuPermissionMappingService {
    
    /**
     * 根据菜单ID获取对应的权限ID列表
     * 
     * @param menuIds 菜单ID列表
     * @return 对应的权限ID列表
     */
    Set<Long> getPermissionsByMenus(List<Long> menuIds);
    
    /**
     * 根据菜单编码获取对应的权限编码列表
     * 
     * @param menuCodes 菜单编码列表
     * @return 对应的权限编码列表
     */
    Set<String> getPermissionCodesByMenuCodes(List<String> menuCodes);
    
    /**
     * 根据菜单路径获取对应的权限编码列表
     * 
     * @param menuPath 菜单路径
     * @return 对应的权限编码列表
     */
    Set<String> getPermissionCodesByMenuPath(String menuPath);
    
    /**
     * 为角色分配菜单时，同时分配对应的权限
     * 
     * @param roleId 角色ID
     * @param menuIds 菜单ID列表
     * @return 分配的权限数量
     */
    int assignPermissionsForMenus(Long roleId, List<Long> menuIds);
}
